package cn.tedu.egmybatis1.mapper;

import cn.tedu.egmybatis1.pojo.entity.Product;
import cn.tedu.egmybatis1.pojo.vo.ProductVO1;
import cn.tedu.egmybatis1.pojo.vo.ProductVO2;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface ProductMapper {
    /*
        INSERT INTO product (title,price,stock)
        VALUES (#{title},#{price},#{stock})
     */
    /** 第1题：添加一个商品信息 `insertProduct` */
    int insertProduct(Product product);

    /** 第2题：通过`id`查询一个商品的标题和价格 `selectSingleProduct` */
    ProductVO1 selectSingleProduct(Integer id);
    /** 第3题：通过`id` 删除一个商品信息 `deleteById` */
    int deleteById(Integer id);

    /** 第4题：查询所有商品的 标题和库存 `selectManyProduct` */
    List<ProductVO2> selectManyProduct();

    /** 第5题：通过id批量删除商品信息`deleteByIds` 要求使用`List`集合形式 */
    int deleteByIds(List<Integer> ids);

    /** 第6题：通过id动态修改商品信息`dynamicUpdate` */
    int dynamicUpdate(Product product);

    /** 第7题：统计商品总数量`selectCount` */
    int selectCount();

    /** 第8题：在xml文件中重用SQL */

}
